package com.bonuo.saas.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 知识产权实体类（专利、软著、商标）
 * 
 * @author ruoyi
 */

@Data
@ApiModel("知识产权")
@EqualsAndHashCode(callSuper = true)
public class IntellectualProperty extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty(value = "主键ID", example = "1")
    private Integer id;

    /** 类型：1专利、2软著、3商标 */
    @Excel(name = "类型", readConverterExp = "1=专利,2=软著,3=商标")
    @ApiModelProperty(value = "类型（1=专利、2=软著、3=商标）", example = "1")
    private Integer type;

    /** 专利类型（1.发明专利、2.实用新型专利、3.外观设计专利） */
    @Excel(name = "专利类型", dictType = "sys_patent_type")
    @ApiModelProperty(value = "专利类型（1=发明专利、2=实用新型专利、3=外观设计专利）", example = "1")
    private Integer patentType;

    /** 登记号 */
    @Excel(name = "(专利、登记)号")
    @ApiModelProperty(value = "(专利、登记)号", example = "2023SR0012345")
    private String registrationNumber;

    /** 名称 */
    @Excel(name = "名称")
    @ApiModelProperty(value = "知识产权名称", example = "一种智能控制系统")
    private String name;



    /** 取得方式：1原始取得、2转让 */
    @Excel(name = "取得方式", dictType = "sys_obtain_method")
    @ApiModelProperty(value = "取得方式（1=原始取得、2=转让）", example = "1")
    private Integer acquisitionMethod;

    /** 权人（专利、软著，可加5个） */
    @Excel(name = "（专利、软著）权人")
    @ApiModelProperty(value = "权人（专利、软著）", example = "张三,李四")
    private String rightHolder;

    /** 转让前单位 */
    @Excel(name = "转让前单位")
    @ApiModelProperty(value = "转让前单位", example = "XX科技有限公司")
    private String transferorUnit;

    /** 转让日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "转让日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "转让日期", example = "2023-06-30")
    private Date transferorDate;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "申请日期", example = "2023-01-15")
    private Date applicationDate;

    /** 状态 */
    @Excel(name = "状态")
    @ApiModelProperty(value = "状态", example = "申请中")
    private String status;

    /** 授权日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "(授权、下证)日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "(授权、下证)日期", example = "2023-06-30")
    private Date authorizationDate;

    /** 发明人（可加15个） */
    @Excel(name = "发明人")
    @ApiModelProperty(value = "发明人", example = "王五,赵六")
    private String inventor;

    /** 所属系列 */
    @Excel(name = "所属系列")
    @ApiModelProperty(value = "所属系列", example = "XX系列")
    private String series;

    /** 对应设备 */
    @Excel(name = "对应设备")
    @ApiModelProperty(value = "对应设备", example = "XX型号机器人")
    private String correspondingDevice;

    /** 高新试用情况 */
    @Excel(name = "高新试用情况")
    @ApiModelProperty(value = "高新试用情况", example = "已用于高新技术企业申报")
    private String highNewUsage;

    /** 证书（专利、软著） */
    @Excel(name = "证书（专利、软著）")
    @ApiModelProperty(value = "证书（专利、软著）", example = "ZL2023001")
    private String certificate;

    /** 合作机构 */
    @Excel(name = "合作机构")
    @ApiModelProperty(value = "合作机构", example = "XX知识产权代理所")
    private String cooperativeAgency;

    /** 是否预审 */
    @Excel(name = "是否预审", readConverterExp = "0=否,1=是")
    @ApiModelProperty(value = "是否预审（0=否、1=是）", example = "1")
    private Integer isAntecedentTrial;

    /** 技术对接人 */
    @Excel(name = "技术对接人")
    @ApiModelProperty(value = "技术对接人", example = "孙七")
    private String technologyPerson;

        /** 商标内容 */
    @Excel(name = "商标内容")
    @ApiModelProperty(value = "商标内容（仅商标类型有效）", example = "XX品牌")
    private String trademarkContent;

    /** 商标图片（存储路径） */
    @Excel(name = "商标图片路径")
    @ApiModelProperty(value = "商标图片存储路径", example = "/upload/trademark/20230115.png")
    private String trademarkPicture;

    /** 国际分类 */
    @Excel(name = "国际分类")
    @ApiModelProperty(value = "国际分类（仅商标类型有效）", example = "第9类")
    private String internationalClassification;

    /** 注册人 */
    @Excel(name = "注册人")
    @ApiModelProperty(value = "注册人", example = "XX有限公司")
    private String registrant;

    /** 注册日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "注册日期", example = "2023-06-30")
    private Date registrationDate;

    /** 有效期至 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "有效期至", example = "2033-06-29")
    private Date validityDate;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty(value = "备注", example = "无")
    private String remark;

}
    